package admin

import (
	"github.com/gin-gonic/gin"
	"mojieshi/define"
	"mojieshi/models"
	"net/http"
	"strconv"
	"strings"
	"time"
)

// 获取系统基本设置
func GetAdminSet(c *gin.Context) {
	var jsonData MemberJsonData
	err := c.ShouldBindJSON(&jsonData)
	if err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 10000,
			"msg":  err,
		})
		return
	}
	var data models.MAdminSet
	err = models.DB.Model(new(models.MAdminSet)).Where("id=?", jsonData.ID).First(&data).Error
	if err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 10001,
			"msg":  err.Error(),
		})
		return
	}
	c.JSON(http.StatusOK, gin.H{
		"success": true,
		"code":    0,
		"data": map[string]interface{}{
			"list": data,
		},
	})
}

// 设置基础信息
func EditAdminSet(c *gin.Context) {
	var jsonData models.MAdminSet
	err := c.ShouldBindJSON(&jsonData)
	if err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 10000,
			"msg":  err,
		})
		return
	}
	var editData = map[string]interface{}{
		"name":          jsonData.Name,
		"logo":          jsonData.Logo,
		"desc":          jsonData.Desc,
		"index_bj":      jsonData.IndexBj,
		"tel":           jsonData.Tel,
		"kfurl":         jsonData.Kfurl,
		"province":      jsonData.Province,
		"city":          jsonData.City,
		"district":      jsonData.District,
		"address":       jsonData.Address,
		"latitude":      jsonData.Latitude,
		"longitude":     jsonData.Longitude,
		"updated_at":    int(time.Now().Unix()),
		"is_tan":        jsonData.IsTan,
		"tan_img":       jsonData.TanImg,
		"page":          jsonData.Page,
		"parameter":     jsonData.Parameter,
		"type":          jsonData.Type,
		"type_id":       jsonData.TypeId,
		"url_type":      jsonData.UrlType,
		"score_money":   jsonData.ScoreMoney,
		"scoredkmaxval": jsonData.Scoredkmaxval,
		"user_bj":       jsonData.UserBj,
		"vip_img":       jsonData.VipImg,
		"balance_img":   jsonData.BalanceImg,
		"autoshdays":    jsonData.Autoshdays,
		"autoclose":     jsonData.Autoclose,
		"juan":          jsonData.Juan,
		"juan_name":     jsonData.JuanName,
		"yue_end":       jsonData.YueEnd,
	}
	err = models.DB.Model(new(models.MAdminSet)).Where("id=?", jsonData.ID).Updates(&editData).Error
	if err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 10003,
			"msg":  err.Error(),
		})
		return
	}
	//写入日志
	userId, _ := strconv.Atoi(c.GetHeader("userId")) //将字符串转为int
	userName, bid := models.UserName(userId)
	logData := "管理员：" + userName + "，修改了基础信息的内容"
	models.LogAdd(3, "修改基础信息", userId, logData, bid, jsonData.Aid)
	c.JSON(http.StatusOK, gin.H{
		"success": true,
		"code":    0,
		"data":    "成功",
	})
}

// 注册赠送
func GetRegisterGiveset(c *gin.Context) {
	var jsonData MemberJsonData
	err := c.ShouldBindJSON(&jsonData)
	if err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 10000,
			"msg":  err,
		})
		return
	}
	var data models.MRegisterGiveset
	err = models.DB.Model(new(models.MRegisterGiveset)).Where("id=?", jsonData.ID).First(&data).Error
	if err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 10001,
			"msg":  err.Error(),
		})
		return
	}
	//推荐分类
	var listTpro []models.MCoupon
	if data.CouponIds != "" {
		var NewArr = strings.Split(data.CouponIds, ",")
		err = models.DB.Model(new(models.MCoupon)).Where("id IN ?", NewArr).Find(&listTpro).Error
		if err != nil {
			define.Response.ResultFail(c, 10004, err.Error(), "")
			return
		}
	}
	c.JSON(http.StatusOK, gin.H{
		"success": true,
		"code":    0,
		"data": map[string]interface{}{
			"list":       data,
			"couponList": listTpro,
		},
	})
}

// 设置注册赠送
func EditRegisterGiveset(c *gin.Context) {
	var jsonData models.MRegisterGiveset
	err := c.ShouldBindJSON(&jsonData)
	if err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 10000,
			"msg":  err,
		})
		return
	}
	var editData = map[string]interface{}{
		"money":         jsonData.Money,
		"score":         jsonData.Score,
		"wanshan_score": jsonData.WanshanScore,
		"give_coupon":   jsonData.GiveCoupon,
		"coupon_ids":    jsonData.CouponIds,
		"starttime":     jsonData.Starttime / 1000,
		"endtime":       jsonData.Endtime / 1000,
		"status":        jsonData.Status,
	}
	err = models.DB.Model(new(models.MRegisterGiveset)).Where("id=?", jsonData.ID).Updates(&editData).Error
	if err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 10003,
			"msg":  err.Error(),
		})
		return
	}
	//写入日志
	userId, _ := strconv.Atoi(c.GetHeader("userId")) //将字符串转为int
	userName, bid := models.UserName(userId)
	logData := "管理员：" + userName + "，修改了注册赠送的内容"
	models.LogAdd(3, "修改注册赠送", userId, logData, bid, jsonData.Aid)
	c.JSON(http.StatusOK, gin.H{
		"success": true,
		"code":    0,
		"data":    "成功",
	})
}
